1. Field of the Invention
The invention relates to the field of digital filters and more particularly to a digital lattice filter, comprising a plurality of identical stages.
2. Description of the Prior Art
Cascade connected stages in a digital lattice filter each have a pair of inputs for receiving input signals and a pair of outputs for supplying output signals, these stages being connected in a cascade arrangement, each stage consisting in no less than two mutually linked branches and no less than one of these branches comprising delay means, a digital lattice filter, comprising a plurality of identical stages each having a pair of inputs for receiving input signals and a pair of outputs for supplying output signals, these stages being connected in a cascade arrangement, each stage consisting in no less than two mutually linked branches, no less than one of these branches comprising delay means, a number of successive cascaded filter stages forming a group, both branches of each group of filter stages comprising delay means such that the time delay in the first branch is equal to the time delay in the second branch.
Such a lattice filter is known from the article entitled: "Generalized Schwarz Form and Lattice-Ladder Realizations of Digital Filters" by Hidenori Kimura, published in IEEE Transactions on Circuits and Systems, Vol. CAS-32, No. 11, November 1985, pp. 1130-1139, and especially from FIG. 8. It is a known fact, inter alia, from the article mentioned as a reference in the above article, entitled: "Digital Lattice and Ladder Filter Synthesis" by A. H. Gray and J. D. Markel, published in IEEE Transactions on Audio and Electroacoustics, Vol. AU21, No. 6, December 1973, pp. 491-500, that lattice filters have particularly favourable properties and are therefore utilized in a great number of applications, more specifically, in the field of speech processing, because a lattice filter permits a direct interpretation of a model of a speech path. Generally, a model composed of an all-pole acoustic filter is used for a speech path, which requires the use of an all-zero analysis filter. In the case of speech processing, in which the sampling rate of the signals to be processed by the filter is relatively low, the fact that the signals have to be processed sequentially by the successive stages of the lattice filter, so that during a single sample interval the number of calculations is at least equal to the number of filter stages, will not cause a problem to either the analysis lattice filter or the synthesis lattice filter.
However, it is also desirable to utilize lattice filters, more specifically, recursive lattice filters, in a large number of other cases. Recursive filters having a relatively short span can provide relatively long impulse responses, so that the number of calculations required can be less, which in many cases is highly attractive. A problem in respect of recursive filters and, more specifically, adaptive recursive filters is the fact that they can become unstable when a pole in the filter is outside the unit circle. Lattice filters not only have the advantage that smaller word lengths can be used, but also that the requirements as to stability can easily be verified on the basis of the values of the filter coefficients.
An all-pole recursive lattice filter, as is known from the above-mentioned article by Gray and Markel, is shown in FIG. 1. The filter can comprise a cascade arrangement of 2N stages, each stage consisting of two branches 1 and 2, which are mutually linked via connections in which multiplier circuits 3 and 4 are incorporated. In adder circuit 5 the input signal e(i)(n) of branch 1 is combined with the output signal of multiplier circuit 4, whose multiplication factor is K.sup.b (i), whilst in adder citcuit 6 the input signal of branch 2 is combined with the output signal of multiplier circuit 3, whose multiplication factor is K.sup.a (i). To the input of branch 2 a circuit of delay elements 7 is connected delaying the input signal d(i-1)(n) of branch 2 over one sample period.
For the output signal of branch 1 the following holds: EQU e(i-1)(n)=e(i)(n)+K.sup.b (i)d(i-1)(n-1) (1)
For the output signal of branch 2 the following holds:
d(i)(n)=K.sup.a (i)e(i-1)(n)+d(i-1)(n-1) (2)
The equations (1) and (2) show that for calculating d(i)(n), not only the values have to be known of d(i-1)(n-1) of the preceding stage, during the preceding sample period, but also the signal e(i-1)(n), for which the signal e(i)(n) of the preceding stage has to be known, that is during the same sample interval. This does not pose a problem as long as there is ample time for a specific sample to travel the filter from beginning to end during an interval between successive samplings. The equations (1) and (2) can then be calculated sequentially by a processing means starting with i=2N, where e(2N)(n) is equal to the actual signal sample x(n) at the input of the filter, and ending with i=1, where the signal sample y(n) is available at the filter output as the signal e(0)(n). Subsequently, the next signal sample x(n+1)=e(2N)(n+1) can be received, in which the calculated values of d(i)(n) have assumed the values of their predecessors.
It will be evident that all this imposes considerable restrictions on the implementation of a digital filter of some magnitude, realized an all-pole lattice filter. In a real-time system the fact that such an implementation is possible or impossible totally depends on the speed of the available processors. The fact that each stage requires at least one multiplication and one addition has rendered the processing of more than one stage between two system clock pulses problematic. The duration of the system clock pulses can be equal to the sample period, but is generally much shorter. Even if table look-up methods were used, 2N operations would have to be carried out in a single sample period, and the storage capacity required would be very considerable. The input signal for one stage requires two signal words (e(i)(n) and d(i-1)(n-1)) and one coefficient word (K(i)). They could be encoded into one address, which address would contain the stage output signal in a sufficient number of bits to encode the two signals e(i-1)(n) and d(i)(n). For 8-bit signals and 4-bit coefficients this would ask for a two megabyte memory, to be addressed 2N times per sample period.
Even with such a table look-up method the maximum span of a recursive lattice filter remains inversely proportional to the sampling rate. Thus, the maximum span of the filter is equal to the ratio between the sample period and the system clock-period. For a signal having a bandwidth of 25 kHz an all-pole lattice filter having a span of 20 stages, arranged in this idealized manner, would still require a system clock of approximately 1 MHz, the Nyquist frequency being 50 kHz. At present this is possible, true enough, but many systems require still much higher sampling rates, so that the limits of the existing, more specifically economically justifiable, hardware are reached. For example, if one wishes to construct an anti-multipath filter for an FM-receiver, when assuming the FM-signal to be transformed down to a zero-frequency carrier, the sampling rate for the FM-signal will be approximately 0.5 MHz. The minimum delay which the filter has to be able to cover is approximately 50 .mu.s. Practice has shown that even in this simple example in excess of 20 stages have to be calculated sequentially during the interval between two incoming signal samples, that is to say within approximately 2 .mu.s. Economically this is not feasible with the existing hardware.
The above article by Hidenori Kimura describes how a general formula can be drived for the matrix representation of a lattice filter. After deriving this matrix representation, called Generalized Schwarz Form in the article, it is shown that there are 2.sup.n-1 lattice realizations of a digital filter of the n order. In one of these realizations delay means have been incorporated in the two branches of the lattice filter so as to make the delay in the two branches the same. In the article it is stated that this reduces the length of the longest delay-free path in the filter and enables the process rate of the filter to increase, but it is not stated in any way how this could be realized and it does not contain any clue thereto either.